Flink集群搭建

环境配置

1. JAVA环境
卸载OpenJDK,安装OracleJDK

rpm -aq | grep java 命令 查看本地安装的JDK软件包

1
2
3
4
[root@localhost ~]# rpm -aq | grep java
tzdata-java-2016c-1.el6.noarch
java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64
java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64

rpm -i jdk-6u24-linux-amd64.rpm 命令安装jdk

1
2
3
4
[root@localhost packages]# ll
总用量 458696
-rw-r--r--. 1 root root 299718134 7月 16 14:17 >flink-1.7.2-bin-hadoop27-scala_2.11.tgz
-rw-r--r--. 1 root root 169983496 7月 16 14:16 jdk-8u131-linux-x64.rpm
修改环境变量
1
2
3
4
5
6
7
8
>vi /etc/profile 

>添加以下内容:
>export JAVA_HOME=/usr/java/default
>export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib
>export PATH=$PATH:$JAVA_HOME/bin

>source /etc/profile
2. 主机名修改
修改hosts文件,映射IP和主机名,顺便把集群的一起做了

vi /etc/hosts

新增以下内容:
192.168.199.116 flink001
192.168.199.127 flink002
192.168.199.128 flink003
192.168.199.129 flink004
192.168.199.130 flink005
192.168.199.131 flink006
192.168.199.132 flink007
192.168.199.133 flink008
192.168.199.134 flink009

修改主机名(centos6.8)

分两部分,第一个

1
2
3
4
vi /etc/sysconfig/network

修改这行 =后部分修改为需要的主机名
HOSTNAME=flink001

第二个,命令修改主机名

1
hostname flink001
3. 免密登录
拷贝 /etc/hosts 文件到其他主机
1
2
3
scp /etc/hosts root@flink002:/etc/hosts
或者
for i in {2..9};do scp /etc/hosts root@flink00${i}:/etc/ ;done
ssh免密登录。JM免密到其他节点就OK
1
2
3
ssh-keygen -rsa -t    // 然后一路回车
ssh-copy-id flink002 // 按要求输入密码
ssh flink002 // 验证是否成功
4. Flink安装
  • 下载安装包到指定目录
  • 修改 ./conf/flink-conf.yaml文件。注意格式中冒号后需要有一个空格,否则不生效,为无效配置项。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    # core 其实在HA模式下,前两个配置不会生效,所以无所谓修不修改,修改了最好
    jobmanager.rpc.address: flink001

    jobmanager.rpc.port: 6123

    jobmanager.heap.size: 20480m

    taskmanager.heap.size: 153600m

    taskmanager.numberOfTaskSlots: 32

    parallelism.default: 1


    io.tmp.dirs:/data1/tmp

    # HDFS
    fs.default-scheme: hdfs://bbkhd

    fs.hdfs.hadoopconf:/data1/flink/flink-1.7.2/conf/

    # zookeeper HA

    high-availability: zookeeper

    high-availability.storageDir: hdfs:///apps/flink/ha

    high-availability.zookeeper.quorum: node31:2181, node32:2181, node33:2181



    # state.backend

    state.backend: filesystem

    state.checkpoints.dir: hdfs:///apps/flink/checkpoints

    state.savepoints.dir: hdfs:///apps/flink/savepoints

    state.backend.incremental: false


    # web上传的jar包路径
    web.upload.dir: /data1/flink/flink-1.7.2/uploadJarDir
  • 修改slaves文件,添加TaskManager主机列表
    1
    2
    3
    4
    5
    6
    7
    8
    9
    flink001
    flink002
    flink003
    flink004
    flink005
    flink006
    flink007
    flink008
    flink009
  • 修改masters文件,添加JobManager主机列表
    1
    2
    flink001:8081
    flink002:8081
  • 检查是否配置 $HADOOP_CONF_DIR目录,如果没有,需要加上配置。如果不集成hadoop不需要关心
  • 拷贝安装包到其他节点
    1
    for i in {2..9};do scp -r /data1/flink/ root@flink00${i}:/data1/flink/ ;done
1
2
./start-cluster.sh  
./stop-cluster.sh